package com.ruoyi.system.mapper;

import java.util.List;

import com.ruoyi.system.domain.SequenceDto;
import com.ruoyi.system.domain.TabPtdetail;
import com.ruoyi.system.domain.DoctorDto;
import com.ruoyi.system.domain.TimeDoctorDto;
import io.lettuce.core.dynamic.annotation.Param;
import org.apache.ibatis.annotations.Update;

/**
 * 检查信息Mapper接口
 *
 * @author jiadun
 * @date 2021-12-28
 */
public interface TabPtdetailMapper
{
    /**
     * 查询检查信息
     *
     * @param ptdeid 检查信息主键
     * @return 检查信息
     */
    public TabPtdetail selectTabPtdetailByPtdeid(Long ptdeid);

    /**
     * 查询检查信息列表
     *
     * @param tabPtdetail 检查信息
     * @return 检查信息集合
     */
    public List<TabPtdetail> selectTabPtdetailList(TabPtdetail tabPtdetail);

    /**
     * 新增检查信息
     *
     * @param tabPtdetail 检查信息
     * @return 结果
     */
    public int insertTabPtdetail(TabPtdetail tabPtdetail);

    /**
     * 修改检查信息
     *
     * @param tabPtdetail 检查信息
     * @return 结果
     */
    public int updateTabPtdetail(TabPtdetail tabPtdetail);

    /**
     * 删除检查信息
     *
     * @param ptdeid 检查信息主键
     * @return 结果
     */
    public int deleteTabPtdetailByPtdeid(Long ptdeid);

    /**
     * 批量删除检查信息
     *
     * @param ptdeids 需要删除的数据主键集合
     * @return 结果
     */
    public int deleteTabPtdetailByPtdeids(Long[] ptdeids);

    // 获取所有报告医生
    public List<DoctorDto> selectBgDoctor();

    // 获取所有审核医生
    public List<DoctorDto> selectShDoctor();

    // 获取所有复审医生
    public List<DoctorDto> selectShDoctor2();

    // 获取当前报告状态以及对应医生和时间
    TimeDoctorDto selectTimeDoctorDto(Long id);

    // 获取序列所需的姓名
    String getSequenceName(Integer patinetId);

    @Update("UPDATE Tab_ptdetail set ptdt_reportDate = NULL WHERE ptdeid = #{ptdeid}")
    void updatePtdtReportdate(@Param("ptdeid") Long ptdeid);

    @Update("UPDATE Tab_ptdetail set ptdt_shDate = NULL WHERE ptdeid = #{ptdeid}")
    void updatePtdtShDate (@Param("ptdeid") Long ptdeid);

    @Update("UPDATE Tab_ptdetail set ptdt_shdate2 = NULL WHERE ptdeid = #{ptdeid}")
    void updatePtdtShdate2(@Param("ptdeid") Long ptdeid);

    List<String> getPatient(@Param("pt_name") String name);

    List<SequenceDto> getSequenceBypatientid(@Param("ptdt_patientid") String patientid);

    SequenceDto getSequenceByptdeid(@Param("ptdeid") String ptdeid);

}
